package org.song.model.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.ibatis.type.Alias;
import org.song.model.dto.common.BaseSearchDto;

import java.util.Date;
import java.util.List;


@ApiModel("博客实体类")
@AllArgsConstructor
@NoArgsConstructor
@Data
@Builder
@Alias("BlogDto")
public class BlogDto extends BaseSearchDto {

    @ApiModelProperty(value = "博客主键" , notes = "博客主键")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long id;

    @ApiModelProperty(value = "博客标题" , notes = "博客标题")
    private String title;

    @ApiModelProperty(value = "作者Id" , notes = "作者Id")
    private String creatorId;

    @ApiModelProperty(value = "博客内容" , notes = "博客内容")
    private String content;

    @ApiModelProperty(value = "创建时间" , notes = "创建时间")
    private Date createTime;

    @ApiModelProperty(value = "首页图片路径" , notes = "首页图片路径")
    private String firstPicture;

    @ApiModelProperty(value = "完成状态" , notes = "完成状态")
    private Byte flag;

    @ApiModelProperty(value = "点赞数" , notes = "点赞数")
    private Integer thumbs;

    @ApiModelProperty(value = "发布状态" , notes = "发布状态")
    private Byte published;

    @ApiModelProperty(value = "归档状态" , notes = "归档状态")
    private Byte archive;

    @ApiModelProperty(value = "推荐状态" , notes = "推荐状态")
    private Integer shareStatement;

    @ApiModelProperty(value = "更新时间" , notes = "更新时间")
    private Date updateTime;

    @ApiModelProperty(value = "浏览次数" , notes = "浏览次数")
    private Long view;

    @ApiModelProperty(value = "描述" , notes = "描述")
    private String description;

    @ApiModelProperty(value = "赞赏状态" , notes = "赞善状态")
    private Long appreciation;

    @ApiModelProperty(value = "评论状态" , notes = "评论状态")
    private Long commentable;

    @ApiModelProperty(value = "博客删除标记" , notes = "博客删除标记")
    private Integer deleted;

    @ApiModelProperty(value = "博客标签数组" , notes = "博客标签数组")
    private List<String> tagIds;

    @ApiModelProperty(value = "博客类型数组" , notes = "博客类型数组")
    private List<String> typeIds;

    @ApiModelProperty( value = "排序字段" , notes = "排序字段")
    private String sortField;

    @ApiModelProperty( value = "排序顺序" , notes = "排序顺序")
    private String sortOrder;

}
